Problem s nastavenim rozsirenych vlastnosti tisku

Otázka od: Martin Radvansky

30. 6. 2004 16:01

Dobry den,
mel bych jeden problemek.
Rad bych ve sve aplikavi vyuzil pri tisku pres PRINTER
nastavil zvetsoveni a zmensovani vystupu na tiskarnu.
Nasel jsem tedy v API moznost pres DEVICEMODE.

Zde je ukazka kodu.

  with Printer do begin
    GetPrinter(ADevice,ADriver,APort,DeviceHandle);
    if DeviceHandle <>0 then begin
      DevMode:=GlobalLock(DeviceHandle);
       with DevMode^ do begin
        dmFields:=dmFields or DM_SCALE;
        dmScale:=10; //10% puvodni velikosti
      end;
      SetPrinter(ADevice,ADriver,APort,DeviceHandle);
      GlobalUnlock(DeviceHandle);
    end;
    Title := gsPrintFile;
    //Copies:=liKopie;
    BeginDoc;
     .
     Vlastni tisk TextOut .....
     .
    EndDoc;
 end;

Uvedeny kod nevyvola vyjimku, ale take se neprovede zvetseni ci
zmenseni tiskoveho vystupu. Pravdepodobne jsem na neco zapomnel, ale
nevim na co.
Prosel jsaem vsemozne priklady a vsude je to stejne. Netusi nekdo co s
tim?
Pokud nahradim DM_SCALE DM_COPIES, tak se to taky neprojevi na poctu
kopii.

Dekuji za kazdy napad
    
--
S pozdravem,
 Martin Radvansky


Odpovedá: Martin Radvansky

30. 6. 2004 20:20

Jeste pro upresneni,
pokud pouziju nastaveni papiru nalezato tak to tiskarna provede,
ale pocet kopii nebo meritko tisku ani za nic, proste to nereaguje.

Da se nejak zjistit, ze tiskarna tyto nastaveni nepodporuje,
mozna bych chapal meritko, ale pocet kopii?

Jeste mozna tedy jinak.
Co vlastne potrebuji.
Potrebuji dostat na stranku tiskovou 63 radku a rekneme urcity pocet
znaku, tak aby nebyly velke mezery mezi radky, jeste to musi byt font
se stejnou sirkou vsech znaku. To by znamenalo tedy vysku znaku
znamit, ale nevim jak na to.

(Jedna se mi o to nasimulovat tisk starych DOS tiskovych sestav pro
jehlickovou tiskarnu na GDI tiskarne)

Diky za pripadne napady.

--
S pozdravem,
 Martin Radvansky


Odpovedá: Fitz Ladislav

1. 7. 2004 8:20

co se tyka stejne sirky vsech znaku budes muset pouzit font ktery je takto
navrhnuty napr.: Courier (nebo tisknout text znak po znaku a vypocitavat
jeho pozici)

co se tyka nastaveni tiskarny tak se zkus podivat na
http://www.volny.cz/maxi_fikus/ mam tam unity pro tisk kde nastavuji pocet
kopii i s testem zda to tiskarna umi a od toho se muzes odpichnout

co se tyka simulace dosoveho tisku existuje moznost tisknout primo znakove,
podivej se na API Escape s parametrem PASSTHROUGH